Make setup wizard resilient to richer gateway protocol steps#824
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 25, 2026, 10:47 PM ET / 02:47 UTC. Summary Reproducibility: yes. source-level: current main documents Progress wizard steps but the headless runner advances no-answer steps with sessionId only, while the PR adds answer-envelope acknowledgement coverage. I did not run live Windows setup in this read-only review. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the shared wizard-protocol handling after maintainers accept the acknowledgement, polling, and restart-replay contract; keep Back-navigation semantics tracked separately. Do we have a high-confidence way to reproduce the issue? Yes, source-level: current main documents Progress wizard steps but the headless runner advances no-answer steps with sessionId only, while the PR adds answer-envelope acknowledgement coverage. I did not run live Windows setup in this read-only review. Is this the best way to solve the issue? Yes. Sharing classification, acknowledgement shaping, formatting, and timeout policy across both setup callers is the narrow maintainable fix for this protocol-resilience gap. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 9447c0f76b1f. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
535c25d to
ca697b5
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
ca697b5 to
21c31b7
Compare
…pts, restart hardening Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow a single long-running gateway progress step to use the full bounded progress budget instead of failing after the previous shorter per-step cap. Share the progress constants between the setup runner and UI and cover the intended budget in tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
21c31b7 to
97a87d7
Compare
Summary
Fix details
sessionId+answer.stepId, matching the gatewaywizard.nextcontract.WizardNextPayloadplus regression tests showing that session-only polling repeats the current step, while acknowledgement advances it.Behavioral proof
I ran the branch locally through setup and the real gateway wizard. The machine's WSL online Ubuntu install path returned
TRUST_E_BAD_DIGEST, so the proof run used a temporary uncommitted local-rootfs override to get past WSL distro creation. No rootfs override changes are included in this PR.Observed live wizard flow:
Representative live UI/log evidence:
Screenshots captured locally for review artifacts:
Focused protocol harness
A local harness also verified the protocol helper behavior directly:
Protocol/source proof
Checked against upstream OpenClaw gateway/macOS sources:
packages/gateway-protocol/src/schema/wizard.tsdefinesprogressandaction,options[].valueasUnknown,initialValueasUnknown, and optionalsensitive/executor.src/wizard/session.tsexposes the runtime step union and usesunknownoption values.apps/macos/Sources/OpenClaw/OnboardingWizard.swiftconsumes the same wizard start/next model and preserves selected option values throughAnyCodable.Validation
./build.ps1— all projects passed.dotnet test ./tests/OpenClaw.SetupEngine.Tests/OpenClaw.SetupEngine.Tests.csproj— 331 passed.dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj— 1163 passed.dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-build— 2422 passed / 29 skipped on rerun.Notes